package com.peas.platform.module.icims.budget.project.adapter.repository.po;

import java.util.*;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 项目通知
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_budget_project_notice`")
public class BudgetProjectNoticePo extends BasePo {

    // 通知类型
    // 一上预算通知、二上预算通知、预算调整通知
    @Comment(value = "通知类型")
    @Size(max = 20, message = "通知类型不能超过20个字符")
    @TableField(value = "`notice_type`", jdbcType = JdbcType.VARCHAR)
    private String noticeType;

    // 通知标题
    @Comment(value = "通知标题")
    @Size(max = 200, message = "通知标题不能超过200个字符")
    @TableField(value = "`notice_title`", jdbcType = JdbcType.VARCHAR)
    private String noticeTitle;

    // 通知内容
    @Comment(value = "通知内容")
    @TableField(value = "`notice_content`", jdbcType = JdbcType.CLOB)
    private String noticeContent;

    // 预算年度
    @Comment(value = "预算年度")
    @Size(max = 4, message = "预算年度不能超过4个字符")
    @TableField(value = "`budget_year`", jdbcType = JdbcType.VARCHAR)
    private String budgetYear;

    // 编报类型
    @Comment(value = "编报类型")
    @Size(max = 20, message = "编报类型不能超过20个字符")
    @TableField(value = "`apply_type`", jdbcType = JdbcType.VARCHAR)
    private String applyType;

    // 截止日期
    @Comment(value = "截止日期")
    @TableField(value = "`expire_date`", jdbcType = JdbcType.TIMESTAMP)
    private Date expireDate;

    // 发布状态
    @Comment(value = "发布状态")
    @Size(max = 20, message = "发布状态不能超过20个字符")
    @TableField(value = "`publish_state`", jdbcType = JdbcType.VARCHAR)
    private String publishState;

    // 附件1ID
    // （附件表）外键
    @Comment(value = "附件1ID")
    @TableField(value = "`attachment1_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment1Id;

    // 附件1名称
    @Comment(value = "附件1名称")
    @Size(max = 200, message = "附件1名称不能超过200个字符")
    @TableField(value = "`attachment1_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment1Name;

    // 附件2ID
    // （附件表）外键
    @Comment(value = "附件2ID")
    @TableField(value = "`attachment2_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment2Id;

    // 附件2名称
    @Comment(value = "附件2名称")
    @Size(max = 200, message = "附件2名称不能超过200个字符")
    @TableField(value = "`attachment2_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment2Name;

    // 附件3ID
    // （附件表）外键
    @Comment(value = "附件3ID")
    @TableField(value = "`attachment3_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment3Id;

    // 附件3名称
    @Comment(value = "附件3名称")
    @Size(max = 200, message = "附件3名称不能超过200个字符")
    @TableField(value = "`attachment3_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment3Name;

    // 附件4ID
    // （附件表）外键
    @Comment(value = "附件4ID")
    @TableField(value = "`attachment4_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment4Id;

    // 附件4名称
    @Comment(value = "附件4名称")
    @Size(max = 200, message = "附件4名称不能超过200个字符")
    @TableField(value = "`attachment4_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment4Name;

    // 附件5ID
    // （附件表）外键
    @Comment(value = "附件5ID")
    @TableField(value = "`attachment5_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment5Id;

    // 附件5名称
    @Comment(value = "附件5名称")
    @Size(max = 200, message = "附件5名称不能超过200个字符")
    @TableField(value = "`attachment5_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment5Name;

    // 附件6ID
    // （附件表）外键
    @Comment(value = "附件6ID")
    @TableField(value = "`attachment6_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment6Id;

    // 附件6名称
    @Comment(value = "附件6名称")
    @Size(max = 200, message = "附件6名称不能超过200个字符")
    @TableField(value = "`attachment6_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment6Name;

    // 附件7ID
    // （附件表）外键
    @Comment(value = "附件7ID")
    @TableField(value = "`attachment7_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment7Id;

    // 附件7名称
    @Comment(value = "附件7名称")
    @Size(max = 200, message = "附件7名称不能超过200个字符")
    @TableField(value = "`attachment7_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment7Name;

    // 附件8ID
    // （附件表）外键
    @Comment(value = "附件8ID")
    @TableField(value = "`attachment8_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment8Id;

    // 附件8名称
    @Comment(value = "附件8名称")
    @Size(max = 200, message = "附件8名称不能超过200个字符")
    @TableField(value = "`attachment8_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment8Name;

    // 附件9ID
    // （附件表）外键
    @Comment(value = "附件9ID")
    @TableField(value = "`attachment9_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment9Id;

    // 附件9名称
    @Comment(value = "附件9名称")
    @Size(max = 200, message = "附件9名称不能超过200个字符")
    @TableField(value = "`attachment9_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment9Name;

    // 附件10ID
    // （附件表）外键
    @Comment(value = "附件10ID")
    @TableField(value = "`attachment10_id`", jdbcType = JdbcType.BIGINT)
    private Long attachment10Id;

    // 附件10名称
    @Comment(value = "附件10名称")
    @Size(max = 200, message = "附件10名称不能超过200个字符")
    @TableField(value = "`attachment10_name`", jdbcType = JdbcType.VARCHAR)
    private String attachment10Name;

}
